Projet NSI Base de données
-
createdb_lycee.sql : fichier sql permettant de construire les tables de notre base de données (enseignant, elève, discipline, etc.) et de les remplir d'un certain nombre d'exemples pour les tests. Les exemples sont commentés.
-
db_infos.py : fichier python déclarant les variables host, user, pwd et db qui servent pour la connection à la base de donnée. Par défaut, host=localhost, user=root, pwd="" et db="db_lycee" (nom de la base créée). Ce fichier est utilisé par le script python db_projet_lycee.py pour travailler sur la base de donnée.
-
db_projet_lycee.py : fichier python déclarant les fonctions permettant d'interagir avec la base. Il s'organisent en plusieurs parties :
-
fonctions générales : connection à la base, fonctions exécutant des requêtes sql
-
fonctions descriptives : extraction des données de la base
-
fonctions de modification : ajouts de valeurs aux champs des tables (enseignants, élèves, classes, notes, etc.)
-
fonctions statistiques : calcul les moyennes et les notes min et max
-
tests : chaque fonction précédente est testée sur un exemple. Décommenter les lignes une à une pour tester.
Pour plus de détail, le fichier db_projet_lycee.py est commenté pour chaque fonction et chaque test.
-
Dans un premier temps, créer la base et importer les exemples à l'aide du fichier createdb_lycee.sql via la console mysql ou via une interface comme phpmyadmin.
-
Afin d'utiliser le script python, l'identifiant et le mot de passe dans le fichier db_infos.py doit correspondre à ceux par lesquels vous accédez à vos bases de données.
-
Exécuter le script db_projet.py n'affichera aucun résultat. Il faudra l'éditer avec un IDE comme pyscripter et décommenter les lignes de test une à une pour extraire des informations de la base ou la modifier.
-
identifiant_enseignant→ nom_enseignant, prénom_enseignant
-
identifiant_élève → nom_élève, prénom_élève
-
identifiant_élève, année_scolaire → identifiant_classe
-
identifiant_discipline → intitulé_discipline
-
identifiant_classe → niveau_classe, intitulé_classe
- Une classe durant une année peut éventuellement avoir plusieurs enseignants pour une même discipline.
- Un enseignant enseigner plusieurs disciplines.
Détail des cardinalités :
-
Un enseignant peut produire plusieurs évaluation (ou aucune)
-
Un enseignant peut faire cours à plusieurs classe (au moins une)
-
Une classe peut suivre plusieurs cours (au moins un)
-
Une classe peut concerner plusieurs élèves (au moins un)
-
Un élève peut appartenir à plusieurs classe (car scolarisé durant plusieurs années)
-
Un élève peut être évalué plusieurs fois
-
Une discipline peut concerner plusieurs évaluation (ou aucune)
-
Un discipline peut concerner plusieurs cours (au moins un)
Nous avons choisi de ne pas ajouter une entité année scolaire" car elle ne contiendrait qu'un attribut année1. Etant en lien avec les relations Evaluer, Faire_cours et Appartenir, nous avons placé un attribut année1.
-
Discipline (num_Discipline, intitulé_Discipline)
-
Elève (num_Elève, nom_Elève, prénom_Elève)
-
Enseignant (num_Enseignant, nom_Elève, prénom_Elève)
-
Classe (num_Classe, niveau_Classe, intitulé_Classe)
-
Faire_cours (num_Enseignant, num_Classe, num_Discipline, année1_Faire_cours)
-
Appartenir (num_Classe, num_Elève, année1_Appartenir)
-
Evaluer (num_Enseignant, num_Elève, num_Discipline, num_Classe, note_Evaluer, trimestre_Evaluer, date_Evaluer, année1_Evaluer)